package cn.stylefeng.guns.modular.business.frequency.financesettlement.model.param;

import cn.stylefeng.guns.core.pojo.base.param.BaseParam;

import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;

/**
 * 订单财务结算表（日记账）
 *
 * @author yujie
 * @date 2023/05/09 17:17
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class FinanceSettlementParam extends BaseParam {

    /**
     * id
     */
    @NotNull(message = "id不能为空",groups = {edit.class})
    private Long id;

    /**
     * 新建时间
     */
    private Date createTime;

    /**
     * 操作人
     */
    private Long createUser;

    /**
     * update_time
     */
    private Date updateTime;

    /**
     * update_user
     */
    private Long updateUser;

    /**
     * 订单id
     */
    @NotNull(message = "订单id不能为空",groups = {add.class,edit.class})
    private Long orderId;

    /**
     * 运单id
     */
    @NotNull(message = "运单id不能为空",groups = {add.class,edit.class})
    private Long transportId;

    /**
     * 结算金额
     */
    @NotNull(message = "结算金额不能为空",groups = {add.class,edit.class})
    private BigDecimal settlementFee;

    /**
     * 结算人
     */
    @NotNull(message = "结算人不能为空",groups = {add.class,edit.class})
    private String settlementUser;

    /**
     * 结算人电话
     */
    @NotNull(message = "结算人电话不能为空",groups = {add.class,edit.class})
    private String settlementPhone;

    /**
     * 结算类型
     */
    @NotNull(message = "结算类型不能为空",groups = {add.class,edit.class})
    private Integer type;

    /**
     * 状态 0.正常 1.作废
     */
    @NotNull(message = "状态 0.正常 1.作废不能为空",groups = {add.class,edit.class})
    private Integer status;

    /**
     * 状态 0.手动结算 1.对账单结算
     */
    @NotNull(message = "状态 0.手动结算 1.对账单结算不能为空",groups = {add.class,edit.class})
    private Integer origin;

    /**
     * order_extra_fee_id
     */
    @NotNull(message = "order_extra_fee_id不能为空",groups = {add.class,edit.class})
    private Long orderExtraFeeId;

    /**
     * 对账单id
     */
    @NotNull(message = "对账单id不能为空",groups = {add.class,edit.class})
    private Long checkId;

    /**
     * 结算备注
     */
    @NotNull(message = "结算备注不能为空",groups = {add.class,edit.class})
    private String remark;

    /**
     * 实际结算时间
     */
    @NotNull(message = "实际结算时间不能为空",groups = {add.class,edit.class})
    private Date settlementTime;

    /**
     * 收款渠道
     */
    @NotNull(message = "收款渠道不能为空",groups = {add.class,edit.class})
    private Integer channel;

    /**
     * 自定义科目
     */
    @NotNull(message = "自定义科目不能为空",groups = {add.class,edit.class})
    private Integer customerSubject;

}
